package com.ruoyi.project.domain;

import com.ruoyi.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;

@ApiModel("项目信息对象")
@Data
public class Project extends BaseEntity {

    /** 主键id */
    private Long id;

    /** 项目年份 */
    @ApiModelProperty(value = "项目年份", example = "2025", required = true)
    @NotBlank(message = "项目年份不能为空")
    private String projectYear;

    /** 工程名称 */
    @ApiModelProperty(value = "工程名称", example = "水利工程A", required = true)
    @NotBlank(message = "工程名称不能为空")
    @Size(max = 100, message = "工程名称不能超过100个字符")
    private String projectName;

    /** 施工合同名称 */
    @ApiModelProperty(value = "施工合同名称", example = "施工合同-A", required = true)
    @NotBlank(message = "施工合同名称不能为空")
    private String contractConstructionName;

    /** 施工合同编号 */
    @ApiModelProperty(value = "施工合同编号", example = "HT-SC-20250711", required = true)
    @NotBlank(message = "施工合同编号不能为空")
    private String contractConstructionCode;

    /** 监理合同名称 */
    @ApiModelProperty(value = "监理合同名称", example = "监理合同-A", required = true)
    @NotBlank(message = "监理合同名称不能为空")
    private String supervisionContractName;

    /** 监理合同编号 */
    @ApiModelProperty(value = "监理合同编号", example = "HT-JL-20250711", required = true)
    @NotBlank(message = "监理合同编号不能为空")
    private String supervisionContractCode;

    /** 建设单位 */
    @ApiModelProperty(value = "建设单位", example = "XX市水利局", required = true)
    @NotBlank(message = "建设单位不能为空")
    private String buildUnit;

    /** 运行管理单位 */
    @ApiModelProperty(value = "运行管理单位", example = "XX水库管理处", required = true)
    @NotBlank(message = "运行管理单位不能为空")
    private String operationManagementUnit;

    /** 勘察单位 */
    @ApiModelProperty(value = "勘察单位", example = "XX勘察设计院", required = true)
    @NotBlank(message = "勘察单位不能为空")
    private String surveyUnit;

    /** 设计单位 */
    @ApiModelProperty(value = "设计单位", example = "XX建筑设计院", required = true)
    @NotBlank(message = "设计单位不能为空")
    private String designUnit;

    /** 监理单位 */
    @ApiModelProperty(value = "监理单位", example = "XX工程监理公司", required = true)
    @NotBlank(message = "监理单位不能为空")
    private String supervisionUnit;

    /** 监理单位简称 */
    @ApiModelProperty(value = "监理单位简称", example = "XX监理", required = true)
    @NotBlank(message = "监理单位简称不能为空")
    private String supervisionUnitAbbreviation;

    /** 监理现场机构名称 */
    @ApiModelProperty(value = "监理现场机构名称", example = "XX项目监理部", required = true)
    @NotBlank(message = "监理现场机构名称不能为空")
    private String supervisionOrganizationName;

    /** 施工单位 */
    @ApiModelProperty(value = "施工单位", example = "XX建筑工程公司", required = true)
    @NotBlank(message = "施工单位不能为空")
    private String constructionUnit;

    /** 施工单位简称 */
    @ApiModelProperty(value = "施工单位简称", example = "XX建筑", required = true)
    @NotBlank(message = "施工单位简称不能为空")
    private String constructionUnitAbbreviation;

    /** 施工现场机构名称 */
    @ApiModelProperty(value = "施工现场机构名称", example = "XX项目部", required = true)
    @NotBlank(message = "施工现场机构名称不能为空")
    private String constructionOrganizationName;

    /** 施工省 */
    @ApiModelProperty(value = "施工省", example = "江苏省")
    private String constructionProvince;

    /** 施工市 */
    @ApiModelProperty(value = "施工市", example = "南京市")
    private String constructionCity;

    /** 施工区 */
    @ApiModelProperty(value = "施工区", example = "玄武区")
    private String constructionArea;

    /** 施工地址 */
    @ApiModelProperty(value = "施工地址", example = "中山路1号")
    private String constructionAddress;


    /**
     * 用户ID
     */
    private Long userId;

    /**
     * 部门ID
     */
    private Long deptId;

    /**
     *
     */
    @ApiModelProperty(value = "1:已导入 2:未导入 不传全部",example = "1")
    private Integer status;


}
